INTRODUCEREOdata cu utilizarea tot mai frecventa a PC-urilor ca server-e de retea
sau ca statii de lucru sub sisteme de operare pe 32 de biti, calitatile
cerute mediilor de stocare în masa au crescut enorm. În aplicatiile vitale,
siguranta în functionare este o cerinta de baza. Hard disk-urile în special s-au dovedit a fi extrem de sensibile,
deoarece atât componentele mecanice, cât si partea electronica si mediul de
memorare nu sunt imune la caderi. Cu toate ca în ultimii ani discurile au
devenit tot mai fiabile, producatorii putând da timpi MTBF (Mean Time
Between Failures) tot mai mari, aceasta valoare reflecta doar o statistica,
neoferind siguranta suta la suta. Capacitatile de memorare au crescut,
depasind domeniul gigaoctetilor, acest lucru implicând utilizarea mai multor
hard disk-uri într-un sistem. Însa cu cât sunt mai multe hard disk-uri
într-un sistem, cu atât creste probabilitatea de aparitie a unei erori. Daca
în plus hard disk-urile sunt vazute de sistem ca o singura unitate logica,
caderea unui disc poate avea efecte catastrofale. Din aceasta cauza se
opteaza din ce în ce mai mult pentru construirea unor structuri de hard
disk-uri tolerante la erori. Tehnica utilizata în acest scop, denumita RAID,
încearca gasirea unui compromis între siguranta, viteza si costuri. Tehnologia RAID (Redundant Array of Inexpensive Disks - matrice
redundanta de discuri ieftine) a fost definita pentru prima data de un grup
de oameni de stiinta de la University of California at Berkeley în
1987. Ideea de baza era de a combina mai multe discuri mici, ieftine, într-o
matrice de discuri ale carei performante sa le depaseasca pe cele ale unui Single
Large Expensive Drive (SLED), deci ale unui singur disc de capacitate
mare, scump. Aceasta matrice este vazuta de calculator ca o singura unitate
logica. Mai târziu s-a constatat ca solutia obtinuta nu este chiar atât de
ieftina precum s-a crezut initial, dar pentru a nu schimba acronimul RAID,
s-a hotarât ca semnificatia lui sa devina "Redundant Array of
Independent Disks". Acestia au studiat posibilitatea de a utiliza doua sau mai multe Harddisk-uri astfel încât
acestea sa apara sistemului gazda ca fiind un singur dispozitiv. Desi
performanta unei astfel de matrici de discuri simple era mai buna decat a
unui singur harddisk cu capacitate echivalenta, fiabilitatea era inacceptabil
de mica. Pentru a rezolva aceasta problema, inginerii de la Pe lânga definirea nivelelor RAID de la 1 la 5, oamenii de stiinta au
studiat data striping-distribuirea (partajarea) datelor pe o matrice
de discuri nerendundante. Cunoscuta ca RAID 0, aceasta configuratienu ofera
nici un mecanism de protectie a datelor, dar permite un flux maxim pentru
aplicatiile care realizeaza transferuri masive de date, cum ar fi productia
video digitala.
Nici unul din nivelele RAID nu este inerent superior celorlalte.
Fiecare este potrivit pentru un anumit tip de aplicatii si platforme, fiecare
are caracteristici de cost, performanta si fiabilitate care raspund unei
anumite nevoi. Fiecare din aceste nivele poate satisface doar unul sau doua
din aceste criterii. Pentru aplicatiile client/server, sistemele bazate pe
nivelele RAID 1, 0/1 si 5 sunt cele mai uzuale (RAID 5 este exceptia -oferind
cea mai buna combinatie de pret, performanta si fiabilitate pentru cele mai
multe servere). Aceasta pentru ca sistemele de operare de retea cele mai
populare - cum ar fi Windows NT Server - administreaza datele în moduri
similare cu cele în care functioneaza aceste arhitecturi RAID. Tehnologia RAID nu poate evita defectarea harddisk-urilor, dar ofera o
masura de siguranta, facând posibila refacerea datelor în timp real, fara
pierderi. Rezistenta la defecte a matricilor de discuri poate fi îmbunatatita
semnificativ si prin alegerea incintei potrivite care gazduieste
harddisk-urile. Cele care ofera facilitati pentru unitati hot-swappable,
surse de alimentare si ventilatoare redundante, pot mari mult timpul de
functionare fara întrerupere a matricilor. Etaloane ca MTDL, MTDA, MTTR si MTBF ofera o masura a
performantelor acestora. Descrierea nivelurilor RAIDDatorita evolutiei complexitatii programelor în timp au aparut
urmatoarele probleme de rezolvat:
S-a trecut la realizarea unor matrici de discuri fizice grupate logic
în volume ce trebuie sa asigure distribuirea datelor, precum si implementarea
unei structuri care sa asigure securitatea datelor prin utilizarea
redundantei. Conceptul RAID implica trei componente:
Organizarea datelorOrganizarea datelor în cadrul ariilor de discuri presupune doua
componente complementare:
Schema de distributie a datelor defineste algoritmul de translatie al
adresei logice externe (ce este vizibila utilizatorului) si adresele fizice
ale discurilor incluse în zonele respective. Sunt doua arhitecturi de baza:
Mecanismul de redundanta specifica tipul, scopul si localizarea
fiecarei informatii redundante din zona de discuri. În mod curent se folosesc
"disk mirroring" (dublarea discului) si informatia de paritate.
Acest mecanism permite sistemului de discuri sa poata fi folosit fara erori
si dupa ce un disc fizic s-a defectat având loc reconstructia datelor. Distribuirea datelor presupune maparea adreselor logice ale volumului
de discuri la discurile fizice componente. Abordarea curenta implica
adresarea curenta a fiecarui disc si maparea blocului logic direct catre
blocul de pe fiecare disc. Distribuirea datelor este facuta
"manual" de catre administratorii de sistem, de programele de
aplicatii sau de catre sistemul de operare. In general administratorul de
sistem este responsabil pentru decizia privind stabilirea locului fiecarei
date pe disc. Arhitectura de "disk striping" transforma mai multe spatii
de adresare într-un singur spatiu de adrese, spatiul unificat folosit de
catre procesorul gazda pentru realizarea transferurilor necesare. Sunt doua
feluri de distributie a datelor, folosind aceasta arhitectura:
"Fine-grained striping" distribuie datele în felii mici
astfel încât toate discurile volumului vor colabora la deservirea unei cereri
de date. În acest caz, toate cele M discuri contin o fractiune din fiecare
bloc accesibil utilizatorului. Numarul de discuri si dimensiunea feliei de
date (stripe) sunt alese astfel încât sa asigure accesarea unui bloc minim de
date din punct de vedere al procesorului gazda. Cele mai folosite dimensiuni
sunt de 1 bit, 1 octet sau 512 octeti; încarcarea datelor este perfect distribuita
tuturor discurilor din sistem, acestea suportând încarcarii egale în cazul
unor operatii de transfer de date. Rata de transfer efectiva se apropie de cea a celor M discuri, însa
daca datele sunt sincronizate, atunci operatiile de pozitionare (seek) si
cele de rotatie a bratelor de citire/scriere nu mai afecteaza timpul total de
accesare, în acest caz contând doar timpul de transfer al datelor pe cele M
discuri. Din aceasta cauza, la un moment dat doar un singur transfer poate fi
asigurat deoarece pentru efectuarea acestuia este nevoie de fiecare disc al
volumului. Aceste limitari sunt uzuale în cazul arhitecturii
"fine-grained striping", deoarece timpul destinat serviciilor este
dominat de cel necesar transferurilor de date. "Coarse-grained striping" exploateaza transferuri paralele
pentru cereri masive si adresare separata a discurilor în cazul unor date de
dimensiuni mai mici. În acest caz, încarcarea discurilor nu mai este egala,
de aceea trebuie optimizat accesul la primul disc al transferului curent.
Pentru optimizarea performantelor trebuie sa alegem dimensiunea optima a
feliilor de date. Pentru cereri de date de dimensiuni variabile, nesecventiale, sunt
indicate accesarile de date concurente, iar dimensiunea feliei de date este
în corelatie cu numarul de discuri accesate de fiecare transfer. Pentru
operatii cu date de dimensiune Una din solutiile posibile în cazul alegerii dimensiunii feliilor de
date, este aceea de a folosi pentru acestea marimi egale cu dimensiunea unei
piste fizice sau un multiplu al acesteia, având si avantajul unui timp de
latenta zero, asigurând astfel si alinierea feliilor de date pentru timpi de
pozitionare minimi. Redundanta datelorMecanismele de implementare a redundantei datelor ale sistemului de
stocare reduc capacitatea de stocare, însa asigura protectia datelor în cazul
caderii sistemului. Timpul mediu dintre doua defecte consecutive (MTBF -
"mean time between failure") este de circa 500.000 ore; cu toate
acestea timpul mediu de viata al unui volum de discuri neredundant este de
ordinul lunilor, fiind invers proportional cu numarul de discuri ce alcatuiesc
sistemul. Daca discurile sunt adresate independent se poate pierde 1/N din
numarul de fisiere sau 1/N din datele fiecarui fisier în cazul folosirii
"disk striping-ului". Din acest motiv trebuie sa includem un
mecanism de implementare a redundantei datelor, mecanism ce poate asigura
protectia în cazul uneia sau a mai multor caderi ale discurilor. O solutie simpla de protectie este aceea de a folosi copii identice;
astfel un bloc de date este scris pe M discuri distincte, datele
considerându-se pierdute atunci când originalul si cele M copii sunt
pierdute. Pentru protectie se folosesc urmatoarele metode:
Metoda "disk mirroring" realizeaza scrierea datelor identic
pe cele doua discuri distincte. În acest caz fiecare sistem de M+1 discuri
distincte poate supravietui caderii a M discuri.
Metoda "disk duplexing" realizeaza scrierea datelor tot pe doua
discuri, însa canalul de date este distinct pentru fiecare disc. Solutia software este inferioara, în acest caz procesorul gazda
(host-processor) trebuind sa execute si operatiile de I/O pentru matricea de
discuri, reducând astfel performantele sistemului; aceasta solutie se
practica atunci când se doreste doar capacitate de stocare mare si toleranta
la defectari. Solutia hardware este optima, ea folosindu-se
atunci când viteza si performantele de acces sunt factori critici. Aceasta
solutie este mai costisitoare, ea implicând utilizarea unui controller
dedicat comunicatiei dintre CPU si discuri; acest controller specializat
contine un procesor RISC dedicat implementarii algoritmului RAID, în acest
caz unitatea centrala (sau serverul sistemului daca se lucreaza în retea)
fiind degrevate de operatiile de I/O, mentinându-si astfel performantele
neafectate. RAID 0RAID 0 nu a fost definit de inginerii de la
RAID 1Aceasta tehnologie relizeaza toleranta la erori altfel decât RAID 0, 3
sau 5. În RAID 1, când se face scrierea datelor pe disc, se face o copie
exacta a acestora pe un al doilea disc (mirror
disk - disc oglinda) în mod automat si transparent pentru sistem,
aplicatie sau utilizator. Discul oglinda devine astfel o copie axacta a
discului principal. Interfata cu discurile se poate face cu unul sau doua controlere. Un
singur controler ofera o performanta de citire/scriere asemanatoare cu cea a
unui singur harddisk. Daca se folosesc doua controlere (câte unul pentru
fiecare harddisk = duplexing), se reduce riscul de a
avea un singur dispozitiv care, în cazul unui defect, ar duce la caderea
ambelor harddisk-uri. De asemenea, duplexing-ul poate îmbunatati rata de transfer
prin scrierea/citirea alternativa a datelor pe/de pe cele 2 unitati.
Comparativ, în cazul unui singur controler performanta la scriere este mai
redusa pentru ca datele trebuie scrise întâi pe discul principal si apoi pe
discul "oglinda". Discurile oglindite au fost utilizate de
majoritatea sistemelor de procesare a tranzactiilor, tolerante la erori.
Acestea sunt o încercare de a îmbunatati
fiabilitatea mediilor de stocare mai curând decât rata de transfer. MTBF-ul unui asemenea
sistem depaseste cu mult pe cel al unui harddisk obisnuit. Spre deosebire de
alte nivele RAID, datele sunt "reparabile" daca se defecteaza un
singur disc si pot fi refacute, în anumite conditii, in cazul caderii ambelor
discuri. Marele dezavantaj este ca numai jumatate din capacitatea de stocare
este efectiv utila si marirea acesteia se poate face numai în perechi de
discuri. Între nivelele RAID, nivelul 1 ofera cea mai mare disponibilitate a
datelor pentru ca sunt mentinute doua copii complete. În plus, performanta la
citire poate fi îmbunatatita daca controlerul matricii de discuri permite
citirea simultana de pe ambele unitati ale unei perechi. La scriere va aparea
o usoara scadere de performanta, comparativ cu scrierea pe un disc obisnuit.
O disponibilitate mai mare poate fi obtinuta daca cele doua discuri ale unei
perechi sunt conectate la magistrale I/O separate Are redundanta R = 100%.
RAID 2RAID 2 stocheaza datele pe un grup de discuri împartindule în "felii",
de obicei de marimea unui sector. Un cod Hamming pentru fiecare
"felie" este stocat pe un disc separat, check disk. Codul permite
si corectarea erorilor. Acest nivel este referit uneori si ca RAID 0+1
deoarece combina avantajele ambelor tehnulogii - disponibilitatea datelor si
performanta ridicata. Poate fi adaptat fie pentu un mediu cu cereri numeroase
de acces la date, fie pentru transferul unor volume mari de date. Datele sunt
partajate pe mai multe harddisk-uri, câteva dintre ele fiind dedicate stocarii
informatiilor de detectare si corectie a erorilor (ECC - Error Checking and
Correction) pentru fiecare sector.Oricum, pentru ca cele mai multe din
harddisk-urile actuale au incluse facilitati ECC la nivel de sector ca
facilitate standared, RAID 2 nu ofera avantaje semnificative comparativ cu
arhitectura RAID 3. În prezent, producatorii au renuntat sa mai fabrice
matrici RAID 2. Are redundanta R = 25%.
RAID 3În RAID 3 datele sunt distribuite pe mai multe discuri, la nivel de
bit sau byte. Unul din harddisk-urile din matrice asigura protectia datelor
pastrând byte-ul de verificare a paritati pentru fiecare unitate de alocare.
La fel ca la RAID 0, discurile sunt accesate simultan, dar exista în plus
harddisk-ul de paritate. Datele sunt scrise/citite simultan pe/de pe toate
unitatile, iar bitul de paritate este calculat si comparat cu cel de pe discul
de paritate (la citire) sau scis pe respectivul disc (la operatia de
scriere). Astfel, pentru fiecare byte scris se calculeaza un bit de paritate
pentru a mentine integritatea datelor. Aceasta permite ca matricea de discuri
si sistemul sa fie 100% functionale si în cazul defectarii unui harddisk din
matrice. În acest caz, se poate continua citirea sau scrierea de pe celelalte
unitati. Bitul de paritate permite refacerea datelor de pe discul defect.
Înlocuirea unitatii defecte se poate face online (hot-swapped), dupa
care controlerul matricii de discuri reconstruieste datele pe acesta.
Avantajele RAID 3 fata de nivelele anterioare este ca procentul ocupat de
informatia redundanta (de paritate) din totalul capacitatii de stocare
descreste pe masura ce creste numarul harddisk-urilor. De asemenea, dispune
de cai paralele de transmitere a datelor, oferind astfel rate de transfer
ridicate pentru aplicatiile care manipuleaza fisiere de dimensiuni mari.
Capacitatea matricii poate fi marita cu câte un harddisk sau în grupuri. La
RAID 3, unitatile de alocare a spatiului (si de transfer al datelor) sunt mai
mici decât la alte sisteme si rotatia platanelor harddisk-urilor este
sincronizata pentru a îmbunatati rata de transfer.
Acest lucru o face potrivita pentru aplicatii CAD/CAM sau grafice. Are
redundanta R = 25%.
RAID 4În RAID 4, informatia de paritate este întretesuta cu datele utile la
nivel de sector dau bloc de date. Ca si la RAID 3, un singur drive este
utilizat pentru stocarea datelor redundante, folosind un byte de paritate
pentru fiecare bloc de date. Caile paralele de transfer a datelor si
distributia datelor pe harddisk-urile din matrice la nive de sector sau bloc
permit efectuarea de operatii independente pe diversele unitati si executarea
în paralel a operatiilor de intrare/iesire. RAID 4 este identic cu RAID 3 cu
exceptia faptului ca se utilizeaza unitati de alocare mai mari, astfel încât
informatiile pot fi citite de pe un harddisk din matrice independent de
discul de paritate. Acest lucru permite suprapunerea în timp a operatiilor de citire. RAID 4 ofera performante ridicate
de citire si relaiv bune de scriere. Aceasta este o solutie de utilitate
generala, aplicabila mai ales acolo unde raportul citiri/scrieri este
ridicat. Astfel, RAID 4 este o alegere buna pentru transferuri de blocuri de
date mici, tipice pentru sistemele de procesare a tranzactiilor.
Performantele la scriere sunt scazute, pentru ca la fiecare scriere trebuie
sa se scrie si bitul de paritate pe harddisk-ul respectiv. Astfel,
harddisk-ul de paritate devine o frâna în calea performantei ridicate când
sunt necesare multe scrieri ale informatiei de paritate. În acest caz, RAID 5
este o solutie mai buna deoarece informatia de paritate este distribuita pe
toate discurile disponibile. RAID 4 aproape ca nu a fost implementat în
practica pentru ca nu ofera avantaje semnificative fata de RAID 5. Are
redundanta R = 25%.
RAID 5Aceasta tehnologie combina fluxul masiv de date oferit de RAID 1 -
prin paratjarea datelor la nivel de bloc - cu mecanismul de refacere a
datelor prin intermediul informatiilor de paritate. Acest nivel de toleranta
la erori integreaza informatia de paritate la nivel de sector cu partajarea
datelor si informatiilor de paritate pe toate harddisk-urile, fara a avea deci o unitate dedicata stocarii informatiilor de
paritate. Aceasta permite multiple operatii de intrare/iesire concurente ceea
ce conduce la un flux de date îmbunatatit, cu mentinerea integritatii
datelor. Un disc anume din matrice este accesat doar atunci când trebuie
scrise/citite date sau informatii de paritate pe/de pe acesta. În RAID 5
discurile pot raspunde independent cererilor de acces, ceea ce ofera o
performanta sporita la citire într-un mediu cu solicitari intense de acces.
Datorita informatiilor de paritate, o matrice RAID 5 poate supravietui
caderii unui disc fara pierderea datelor sau întreruperea accesului la
acestea. Punctul forte al acestei tehnologii este manipularea unui numar mare
de fisiere mici. Rata de transfer este ridicata pentru ca nu mai exista strangularea de
la RAID 4 datorata drive-ului de paritate. Desi RAID 5 este mai eficient din
punct de vedere al costurilor, pentru ca nu mai este necesar un drive separat
pentru paritate, performanta la scriere are de suferit. Fiecare operatie de
scriere necesita 4 accese independente la disc. Întâi, datele vechi si
informatia de paritate este citita de pa discuri separate. Apoi este
calculata noua paritate. În fine, noile date si informatiile de paritate sunt
scrise pe discuri separate. Multi producatori de sisteme RAID utilizeaza caching-ul pentru a
compensa performantele slabe la scriere. În acest caz este important ca
acesta sa fie sustinut de un sistem UPS (Uninterruptible Power Supply).
În aplicatiile grafice, dezavantajul RAID 5 fata de RAID 3 este slaba
performanta la scriere datorata informatiilor de paritate distribuite, astfel
încât RAID 5 este de obicei întâlnit în aplicatii cu numar mare de operatii
de citire/scriere scurte. Utilizarea maxima a capacitatii se obtine atunci
matricea are mai putin de 7 discuri. La un numar mai mare aceasta este
asemanatoare nivelului RAID 3. Are redundanta R = 25%.
În cazul caderii unui disc, operatia de refacere a datelor consta în
folosirea discurilor ramase, discul de paritate si discurile de date, datele
refacându-se cu aceeasi suma de paritate folosita la constructia discului de
paritate. RAID 6Caracteristici / Avantaje1. RAID 6 este în esentã o extensie a lui RAID 5 care permite pentru o
tolerantã a erorii aditionalã folosirea unei a doua
paritãti independent distribuitã (paritate bidimensionalã). 2. Datele sunt împãrtite în blocuri la fel ca la RAID 5 si un al
doilea set de paritate este calculat si scris pe toate driverele; RAID 6
asigurã o tolerantã a erorilor foarte mare, si poate rezista la defectiuni de
disc multiple si simultane. 3. Este o solutie perfectã pentru aplicatii critice. Dezavantaje1. Design-ul controlerului este foarte complex. 2. Timpul necesar controlului pentru a procesa adresele de paritate
ale controlerului este foarte mare. 3. Performantã de scriere foarte proastã. 4. Necesitã M+2 drivere pentru a fi implementat datoritã
schemei de paritate bidimensionale.
RAID 7Caracteristici arhitecturale:
Avantaje1. Performantele medii de scriere sunt cu 25% pânã la 90% mai bune
decât performantele discurilor obisnuite, si de la 1,5 pânã la 6 ori mai bunã
decât orice alt nivel RAID. 2. Interfetele gazdã sunt scalabile pentru conectivitate sau pentru
cresterea transferului. 3. Citirile de mãrime micã în mediul multi-user au timp de
acces aproape 0 datoritã memorãrii in cache. 4. Performantele de scriere se îmbunãtãtesc odatã cu cresterea
numãrului de drivere din suprafatã. 5. Timpul de acces scade odatã cu cresterea numãrului de
actualizatoare din suprafatã. 6. Nu este necesar transferul de date suplimentare pentru paritate. Dezavantaje1. Solutia este oferitã de cãtre un singur producãtor. 2. Cost pe MB foarte mare. 3. Garantie foarte scurtã. 4. Nu existã serviciu de depanare. 5. Sursa de curent trebuie sã fie UPS pentru a preveni pierderea de
date din cache. |
|